#!/bin/bash
###############################################################################
# @用例ID: 20230527-105345-854289047
# @用例名称: tc_vim
# @用例级别: 3
# @用例标签:
# @用例类型: 功能
###############################################################################
[ -z "$TST_TS_TOPDIR" ] && {
    TST_TS_TOPDIR="$(realpath "$(dirname "$0")/..")"
    export TST_TS_TOPDIR
}
source "${TST_TS_TOPDIR}/tst_common/lib/common.sh" || exit 1
###############################################################################

g_tmpdir="$(mktemp -d)"

tc_setup() {
    msg "this is tc_setup"
    # @预置条件: 查看vim是否安装
    rpm -qa|grep vim > /dev/null 2>&1
    assert_true [ $? -ne 0 ]
    return 0
}

do_test() {
    msg "this is do_test"

    # @测试步骤:1: 使用vim打开一个文件进行编辑
    # @预期结果:1: 成功打开一个文本
    assert_true vim test.txt
    

    # @测试步骤:2: 在文件中查找特定文本
    # @预期结果:2: 成功查找
    assert_true vim -c "/test" test.txt

    # @测试步骤:3: 在文件中进行替换
    # @预期结果:3: 成功替换
    assert_true vim -c ":%s/test/TEST/g" -c ":wq" test.txt

    # @测试步骤:4: 复制和粘贴文本
    # @预期结果:4: 成功复制粘贴
    assert_true vim -c "yy" -c "p" -c ":wq" test.txt
    
    # @测试步骤:5: 保存并退出文件
    # @预期结果:5: 成功保存和退出
    assert_true vim -c ":wq" test.txt

    return 0
}

tc_teardown() {
    msg "this is tc_teardown"
    rm -rfv test.txt || return 1
    rm -rfv "$g_tmpdir" || return 1
    return 0
}

###############################################################################
tst_main "$@"
###############################################################################
